//! Generated packed bytes wrappers.

#![doc(hidden)]
#![allow(warnings)]
#![allow(missing_docs)]

#[allow(clippy::all)]
#[allow(clippy::fallible_impl_from)]
mod blockchain;
#[allow(clippy::all)]
#[allow(clippy::fallible_impl_from)]
mod extensions;
#[allow(clippy::all)]
#[allow(clippy::fallible_impl_from)]
mod protocols;

pub mod packed {
    //! Various newtypes of [`bytes::Bytes`], and their associated types.
    //!
    //! These newtypes are thread-safe and immutable binary data with a series of associated methods
    //! to read and convert themselves.
    //!
    //! These newtypes are generated by [Molecule] from [schemas].
    //!
    //! # References:
    //! - [Using the Newtype Pattern to Implement External Traits on External Types](https://doc.rust-lang.org/book/ch19-03-advanced-traits.html#using-the-newtype-pattern-to-implement-external-traits-on-external-types)
    //! - [Using the Newtype Pattern for Type Safety and Abstraction](https://doc.rust-lang.org/book/ch19-04-advanced-types.html#using-the-newtype-pattern-for-type-safety-and-abstraction)
    //!
    //! [`bytes::Bytes`]: https://docs.rs/bytes/*/bytes/#bytes
    //! [Molecule]: https://github.com/nervosnetwork/molecule
    //! [schemas]: https://github.com/nervosnetwork/molecule/blob/df1fdce/docs/schema_language.md#molecule-schema-language
    pub use molecule::prelude::{Byte, ByteReader};

    pub use super::blockchain::*;
    pub use super::extensions::*;
    pub use super::protocols::*;
}
